home *** CD-ROM | disk | FTP | other *** search
- /*
- ** $VER: screens.e V0.9B
- **
- ** Screen Definitions.
- **
- ** (C) Copyright 1996-1997 DreamWorld Productions.
- ** All Rights Reserved
- */
-
- OPT MODULE
- OPT EXPORT
- OPT PREPROCESS
-
- MODULE 'dpkernel/dpkernel','graphics/blitter','system/register',
- 'system/tasks'
-
- /****************************************************************************
- ** Screen object.
- */
-
- CONST SCRVERSION = 1,
- TAGS_SCREEN = $FFFB0000 OR ID_SCREEN
-
- OBJECT screen
- head[1] :ARRAY OF head /* Standard structure header */
- memptr1 :LONG /* Ptr to screen 1 */
- memptr2 :LONG /* Ptr to screen 2 (double buffer) */
- memptr3 :LONG /* Ptr to screen 3 (triple buffer) */
- inext :LONG /* Ptr to a linked screen */
- palette :PTR TO LONG /* Ptr to the screen palette */
- raster :PTR TO raster /* Ptr to a rasterlist */
- emp :LONG /* */
- width :INT /* The width of the visible screen */
- height :INT /* The height of the visible screen */
- xoffset :INT /* Hardware co-ordinate for TOS */
- yoffset :INT /* Hardware co-ordinate for LOS */
- bmpxoffset :INT /* Offset of the horizontal axis */
- bmpyoffset :INT /* Offset of the vertical axis */
- scrmode :INT /* What screen mode is it? */
- empty :INT /* Reserved. */
- attrib :LONG /* Special Attributes are? */
- task :PTR TO dpktask /* R: Task that owns this screen */
- bitmap :PTR TO bitmap /* Bitmap */
- switch :INT /* Set to switch the buffers */
- ENDOBJECT
-
- CONST BUFFER1 = 12,
- BUFFER2 = 16,
- BUFFER3 = 20
-
- /*** Screen Attributes ***/
-
- CONST DBLBUFFER = $00000001, -> For double buffering
- TPLBUFFER = $00000002, -> Triple buffering!!
- PLAYFIELD = $00000004, -> Set if it's part of a playfield
- HSCROLL = $00000008, -> Gotta set this to do scrolling
- VSCROLL = $00000010, -> For vertical scrolling
- SPRITES = $00000020, -> Set this if you want sprites
- SBUFFER = $00000040, -> Creates a scroll buff for up to 100 screens.
- CENTRE = $00000080, -> Centres the screens (sets XOffset/YOffset).
- BLKBDR = $00000100, -> Gives a blackborder on AGA machines
- NOSCRBDR = $00000200, -> For putting sprites in the border
- BLANKPALETTE = $00000400
-
- /*** Screen types ***/
-
- CONST INTERLEAVED = 1, -> These are actual numbers, not bits.
- ILBM = 1,
- PLANAR = 2,
- CHUNKY8 = 3,
- CHUNKY16 = 4,
- TRUECOLOUR = 5
-
- /*** Screen modes ***/
-
- CONST HIRES = $0001, -> High resolution
- SHIRES = $0002, -> Super-High resolution
- LACED = $0004, -> Interlaced
- LORES = $0008, -> Low resolution (default)
- EXTRAHB = $0010, -> Extra HalfBrite
- SLACED = $0020, -> Super-Laced resolution.
- HAM = $0040 -> For HAM mode
-
- /*** Screen tags ***/
-
- CONST GSA_MemPtr1 = 12 OR TAPTR,
- GSA_MemPtr2 = 16 OR TAPTR,
- GSA_MemPtr3 = 20 OR TAPTR,
- GSA_INext = 24 OR TAPTR,
- GSA_Palette = 28 OR TAPTR,
- GSA_Raster = 32 OR TAPTR,
- GSA_Width = 40 OR TWORD,
- GSA_Height = 42 OR TWORD,
- GSA_XOffset = 44 OR TWORD,
- GSA_YOffset = 46 OR TWORD,
- GSA_BmpXOffset = 48 OR TWORD,
- GSA_BmpYOffset = 50 OR TWORD,
- GSA_ScrMode = 52 OR TWORD,
- GSA_Attrib = 56 OR TLONG
-
- CONST GSA_BitmapTags = 64 OR TSTEPIN
-
- /****************************************************************************
- ** Raster object.
- */
-
- CONST RASVERSION = 1
-
- OBJECT raster
- head[1] :ARRAY OF head /* Standard header */
- command :PTR TO rhead /* Pointer to the first command */
- screen :PTR TO screen /* Pointer to our Screen owner */
- flags :LONG /* Special flags */
- ENDOBJECT
-
- CONST RSF_DISPLAYED = $00000001 /* If the raster is currently on display */
-
- /****************************************************************************
- ** Rasterlist command header format.
- */
-
- OBJECT rstats
- copsize :LONG
- coppos :PTR TO INT
- ENDOBJECT
-
- OBJECT rhead
- id :INT
- version :INT
- stats :PTR TO rstats
- prev :PTR TO rhead
- next :PTR TO rhead
- ENDOBJECT
-
- /****************************************************************************
- ** These are the raster command structures.
- */
-
- CONST ID_RASTWAIT = 1,
- ID_RASTFLOOD = 2,
- ID_RASTCOLOUR = 3,
- ID_RASTCOLOURLIST = 4,
- ID_RASTMIRROR = 5
-
- OBJECT rwait
- head[1] :ARRAY OF rhead
- line :INT
- ENDOBJECT
-
- OBJECT rflood
- head[1] :ARRAY OF rhead
- ENDOBJECT
-
- OBJECT rcolour
- head[1] :ARRAY OF rhead
- colour :LONG
- value :LONG
- ENDOBJECT
-
- OBJECT rcolourlist
- head[1] :ARRAY OF rhead
- ycoord :INT
- skip :INT
- colour :LONG
- values :PTR TO LONG
- ENDOBJECT
-
-